Forward Error Correction (FEC) is known as an example of an error-correcting method for recovering lost packets in the Internet Protocol (IP) network.
The FEC is a technology in which data is recovered from redundant data that is added to data during transmission on the receiving side.
For example, prevention of an increase in errors in the downstream device has been desired when a relay transmission is conducted for sequentially transferring data from an upstream-side device to a downstream-side device at a certain bit rate. In other words, the downstream-side device accumulates data errors, which occurred before, when the data is transferred from the upstream-side device to the downstream-side device without correcting packet loss in the upstream-side device. For this reason, the upstream-side device adds a FEC packet to the data every two or more packets and then transmits the data to the downstream-side device. The upstream-side device further transmits data while the downstream-side device corrects the data using the FEC packet in the downstream device. Therefore, the accumulation of errors in the downstream-side device may be prevented.
As a technology for performing data transfer using the FEC, a proposed technology is to suppress a variation in transfer rate by transferring data with a delay of a predetermined value (T−K·τ) when performing a relay transmission while correcting packet loss, so-called errors, by the FEC. Here, “τ” represents transfer interval of packets. Also, “K” represents the number of lost packets. In addition, “T” is a fixed value which is larger than “M·τ” obtained by multiplying the number of packets restorable with a FEC packet “F” by the transfer interval “τ” of packets. As an example, the case where “M·τ+α” is adopted is assumed. Here, “α” represents a transfer delay time which indicates the time delayed by transmission. As an example, “α” is provided with a positive value near zero.
FIG. 7 is a diagram illustrating an exemplary data transfer of the related art. The example illustrated in FIG. 7 considers that the number of packets is six in one block and data transfer is sequentially performed on devices A, B, C, and D in this order. Reference numerals 1 to 7 in FIG. 7 represent data packets where data to be transferred is allocated. In addition, reference numerals 70A to 70D in FIG. 7 represent blocks each containing six packets including five packets (data packets 1 to 5) and a FEC packet F. In the example illustrated in FIG. 7, the transfer interval of packets is defined “τ” and the transfer delay of packets is defined “T−K·τ”, and the number of packets M restorable by a FEC packet F is set to “1”. Then, data transfer is considered to be performed under the condition of: T=M·τ+α.
As illustrated in FIG. 7, the device A receives a data packet 1. In this case, the number of lost packets becomes zero (K=0). Thus, the device A transmits the data packet 1 to the device B with a delay of τ+α (=1·τ+α−0·τ). Then, the device A skips the data packet 2 and receives the data packet 3. In this case, since the data packet 2 has been lost, the number of lost packets becomes one (K=1). Thus, the device A transmits the data packet 3 to the device B with a delay of τ+α (=1·τ+α−1·τ). Similarly, the device A transfers the data packet 4, the data packet 5, and the FEC packet F to the device B with a delay of α. Then, the device A employs the FEC packet F to restore the missing data packet 2 among the packets in the block 70A and then transmits the restored data packet 2 to the device B.
Furthermore, the device B normally receives each of the packets in the block 70B in the order of the data packet 1, the data packet 3, the data packet 4, the data packet 5, the FEC packet F, and the data packet 2. Thus, the device B transmits each packet to the device C with a delay of “τ+α”. In the device C, among packets in the block 70C, all the packets except the data packet 4 are normally received. That is, the device C only lacks the data packet 4 which is the third one transmitted from the device B. Thus, the device C restores the data packet 4 with the FEC packet F after transmitting the normally received packets to the device D and then transmits the data packet 4 to the device D. In addition, the device D normally receives the data packet 1, the data packet 3, the data packet 5, the FEC packet F, the data packet 2, and the data packet 4 in the block 70D in this order.
The data transfer causes a delay of some packets in the block transferred from one device to another device, compared with other packets. In addition, the data transfer is prevented from causing a variation in the transfer rate in which the interval of packet receiving is too narrow.
The technology described above is disclosed in Japanese Laid-open Patent Publication No. 2005-12753 (filed on Jan. 13, 2005).